[INFO] fetching crate dot_parse 0.2.0...
[INFO] fixing dot_parse-0.2.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate dot_parse 0.2.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate dot_parse 0.2.0
[INFO] finished tweaking crates.io crate dot_parse 0.2.0
[INFO] tweaked toml for crates.io crate dot_parse 0.2.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate dot_parse 0.2.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate dot_parse 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 53c639e18da82d814612bbb460dae492cc0b53acbbb634833fb49c8f5b0db151
[INFO] running `Command { std: "docker" "start" "53c639e18da82d814612bbb460dae492cc0b53acbbb634833fb49c8f5b0db151", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53c639e18da82d814612bbb460dae492cc0b53acbbb634833fb49c8f5b0db151" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53c639e18da82d814612bbb460dae492cc0b53acbbb634833fb49c8f5b0db151", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53c639e18da82d814612bbb460dae492cc0b53acbbb634833fb49c8f5b0db151" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]     Checking more-asserts v0.2.1
[INFO] [stderr]     Checking dot v0.1.4
[INFO] [stderr]     Checking dot_parse v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]        Fixed src/lib.rs (20 fixes)
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/lib.rs:1005:41
[INFO] [stdout]      |
[INFO] [stdout] 1005 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: `--force-warn non-fmt-panics` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/lib.rs:1043:41
[INFO] [stdout]      |
[INFO] [stdout] 1043 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/lib.rs:1055:41
[INFO] [stdout]      |
[INFO] [stdout] 1055 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/lib.rs:1061:41
[INFO] [stdout]      |
[INFO] [stdout] 1061 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/lib.rs:1112:36
[INFO] [stdout]      |
[INFO] [stdout] 1112 |                     assert!(false, subgraph);
[INFO] [stdout]      |                                    ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/lib.rs:1125:36
[INFO] [stdout]      |
[INFO] [stdout] 1125 |                     assert!(false, subgraph);
[INFO] [stdout]      |                                    ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.16s
[INFO] [stderr] crater-edition-check: dot_parse v0.2.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking dot_parse v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]     --> src/lib.rs:1005:41
[INFO] [stdout]      |
[INFO] [stdout] 1005 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]      |
[INFO] [stdout] 1005 |             assert!(!node_stmt.is_ok(), "{}", node_stmt.unwrap());
[INFO] [stdout]      |                                         +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]     --> src/lib.rs:1043:41
[INFO] [stdout]      |
[INFO] [stdout] 1043 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]      |
[INFO] [stdout] 1043 |             assert!(!node_stmt.is_ok(), "{}", node_stmt.unwrap());
[INFO] [stdout]      |                                         +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]     --> src/lib.rs:1055:41
[INFO] [stdout]      |
[INFO] [stdout] 1055 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]      |
[INFO] [stdout] 1055 |             assert!(!node_stmt.is_ok(), "{}", node_stmt.unwrap());
[INFO] [stdout]      |                                         +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]     --> src/lib.rs:1061:41
[INFO] [stdout]      |
[INFO] [stdout] 1061 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]      |
[INFO] [stdout] 1061 |             assert!(!node_stmt.is_ok(), "{}", node_stmt.unwrap());
[INFO] [stdout]      |                                         +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]     --> src/lib.rs:1112:36
[INFO] [stdout]      |
[INFO] [stdout] 1112 |                     assert!(false, subgraph);
[INFO] [stdout]      |                                    ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]      |
[INFO] [stdout] 1112 |                     assert!(false, "{}", subgraph);
[INFO] [stdout]      |                                    +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]     --> src/lib.rs:1125:36
[INFO] [stdout]      |
[INFO] [stdout] 1125 |                     assert!(false, subgraph);
[INFO] [stdout]      |                                    ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]      |
[INFO] [stdout] 1125 |                     assert!(false, "{}", subgraph);
[INFO] [stdout]      |                                    +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:257:10
[INFO] [stdout]     |
[INFO] [stdout] 257 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/lib.rs:350:61
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stdout]     |                                                             ^                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 350 -     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stdout] 350 +     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, (usize, &'a str) > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:361:10
[INFO] [stdout]     |
[INFO] [stdout] 361 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:401:10
[INFO] [stdout]     |
[INFO] [stdout] 401 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:705:10
[INFO] [stdout]     |
[INFO] [stdout] 705 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:257:10
[INFO] [stdout]     |
[INFO] [stdout] 257 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/lib.rs:350:61
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stdout]     |                                                             ^                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 350 -     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stdout] 350 +     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, (usize, &'a str) > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:361:10
[INFO] [stdout]     |
[INFO] [stdout] 361 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:401:10
[INFO] [stdout]     |
[INFO] [stdout] 401 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/lib.rs:705:10
[INFO] [stdout]     |
[INFO] [stdout] 705 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lib.rs:10:13
[INFO] [stdout]     |
[INFO] [stdout]  10 |             _ => false
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout] ...
[INFO] [stdout] 235 |             (Some(a), Some(_b)) => matches!(a, _b) && id_match(self, other),
[INFO] [stdout]     |                                    ---------------
[INFO] [stdout]     |                                    |           |
[INFO] [stdout]     |                                    |           matches any value
[INFO] [stdout]     |                                    in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lib.rs:10:13
[INFO] [stdout]     |
[INFO] [stdout]  10 |             _ => false
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout] ...
[INFO] [stdout] 488 |         matches!(self, other)
[INFO] [stdout]     |         ---------------------
[INFO] [stdout]     |         |              |
[INFO] [stdout]     |         |              matches any value
[INFO] [stdout]     |         in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/lib.rs:487:18
[INFO] [stdout]     |
[INFO] [stdout] 487 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/lib.rs:488:24
[INFO] [stdout]     |
[INFO] [stdout] 488 |         matches!(self, other)
[INFO] [stdout]     |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lib.rs:10:13
[INFO] [stdout]     |
[INFO] [stdout]  10 |             _ => false
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout] ...
[INFO] [stdout] 235 |             (Some(a), Some(_b)) => matches!(a, _b) && id_match(self, other),
[INFO] [stdout]     |                                    ---------------
[INFO] [stdout]     |                                    |           |
[INFO] [stdout]     |                                    |           matches any value
[INFO] [stdout]     |                                    in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lib.rs:604:21
[INFO] [stdout]     |
[INFO] [stdout] 603 |                     key_subgraph => parse_stmt_list_and_return(None, 2),
[INFO] [stdout]     |                     ------------ matches any value
[INFO] [stdout] 604 |                     _ => Err((0, "expecting subgraph")),
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: there is a binding of the same name; if you meant to pattern match against the value of that binding, that is a feature of constants that is not available for `let` bindings
[INFO] [stdout]    --> src/lib.rs:597:13
[INFO] [stdout]     |
[INFO] [stdout] 597 |         let key_subgraph: &str = "subgraph";
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lib.rs:609:21
[INFO] [stdout]     |
[INFO] [stdout] 608 |                     (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3),
[INFO] [stdout]     |                     ---------------------- matches all the relevant values
[INFO] [stdout] 609 |                     (_, Ok(_)) => Err((0, "expecting subgraph")),
[INFO] [stdout]     |                     ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_subgraph`
[INFO] [stdout]    --> src/lib.rs:597:13
[INFO] [stdout]     |
[INFO] [stdout] 597 |         let key_subgraph: &str = "subgraph";
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_brace`
[INFO] [stdout]    --> src/lib.rs:598:13
[INFO] [stdout]     |
[INFO] [stdout] 598 |         let right_brace: &str = "}";
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_brace`
[INFO] [stdout]    --> src/lib.rs:600:42
[INFO] [stdout]     |
[INFO] [stdout] 600 |             (Some(idx_left_brace), Some(&right_brace)) => match idx_left_brace {
[INFO] [stdout]     |                                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_subgraph`
[INFO] [stdout]    --> src/lib.rs:603:21
[INFO] [stdout]     |
[INFO] [stdout] 603 |                     key_subgraph => parse_stmt_list_and_return(None, 2),
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_subgraph`
[INFO] [stdout]    --> src/lib.rs:608:22
[INFO] [stdout]     |
[INFO] [stdout] 608 |                     (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3),
[INFO] [stdout]     |                      ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lib.rs:10:13
[INFO] [stdout]     |
[INFO] [stdout]  10 |             _ => false
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout] ...
[INFO] [stdout] 488 |         matches!(self, other)
[INFO] [stdout]     |         ---------------------
[INFO] [stdout]     |         |              |
[INFO] [stdout]     |         |              matches any value
[INFO] [stdout]     |         in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/lib.rs:487:18
[INFO] [stdout]     |
[INFO] [stdout] 487 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/lib.rs:488:24
[INFO] [stdout]     |
[INFO] [stdout] 488 |         matches!(self, other)
[INFO] [stdout]     |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lib.rs:604:21
[INFO] [stdout]     |
[INFO] [stdout] 603 |                     key_subgraph => parse_stmt_list_and_return(None, 2),
[INFO] [stdout]     |                     ------------ matches any value
[INFO] [stdout] 604 |                     _ => Err((0, "expecting subgraph")),
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: there is a binding of the same name; if you meant to pattern match against the value of that binding, that is a feature of constants that is not available for `let` bindings
[INFO] [stdout]    --> src/lib.rs:597:13
[INFO] [stdout]     |
[INFO] [stdout] 597 |         let key_subgraph: &str = "subgraph";
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lib.rs:609:21
[INFO] [stdout]     |
[INFO] [stdout] 608 |                     (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3),
[INFO] [stdout]     |                     ---------------------- matches all the relevant values
[INFO] [stdout] 609 |                     (_, Ok(_)) => Err((0, "expecting subgraph")),
[INFO] [stdout]     |                     ^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_subgraph`
[INFO] [stdout]    --> src/lib.rs:597:13
[INFO] [stdout]     |
[INFO] [stdout] 597 |         let key_subgraph: &str = "subgraph";
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_brace`
[INFO] [stdout]    --> src/lib.rs:598:13
[INFO] [stdout]     |
[INFO] [stdout] 598 |         let right_brace: &str = "}";
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_brace`
[INFO] [stdout]    --> src/lib.rs:600:42
[INFO] [stdout]     |
[INFO] [stdout] 600 |             (Some(idx_left_brace), Some(&right_brace)) => match idx_left_brace {
[INFO] [stdout]     |                                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_subgraph`
[INFO] [stdout]    --> src/lib.rs:603:21
[INFO] [stdout]     |
[INFO] [stdout] 603 |                     key_subgraph => parse_stmt_list_and_return(None, 2),
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_subgraph`
[INFO] [stdout]    --> src/lib.rs:608:22
[INFO] [stdout]     |
[INFO] [stdout] 608 |                     (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3),
[INFO] [stdout]     |                      ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get` and `len` are never used
[INFO] [stdout]    --> src/lib.rs:421:8
[INFO] [stdout]     |
[INFO] [stdout] 384 | impl<'a> AList<'a> {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 421 |     fn get(&self, key: &str) -> Option<&IdWrapper<'a>> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     fn len(&self) -> usize {
[INFO] [stdout]     |        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key` and `attr_list` are never read
[INFO] [stdout]    --> src/lib.rs:504:5
[INFO] [stdout]     |
[INFO] [stdout] 503 | pub struct AttrStmt<'a> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 504 |     key: AttrStmtKey,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 505 |     attr_list: AttrList<'a>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `attr_list` are never read
[INFO] [stdout]    --> src/lib.rs:533:5
[INFO] [stdout]     |
[INFO] [stdout] 532 | pub struct NodeStmt<'a> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 533 |     id: NodeId<'a>,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 534 |     attr_list: Option<AttrList<'a>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `stmt_list` are never read
[INFO] [stdout]    --> src/lib.rs:577:5
[INFO] [stdout]     |
[INFO] [stdout] 576 | pub struct SubGraph<'a> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 577 |     id: Option<dot::Id<'a>>,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 578 |     stmt_list: StmtList<'a>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attr_list` is never read
[INFO] [stdout]    --> src/lib.rs:718:5
[INFO] [stdout]     |
[INFO] [stdout] 715 | pub struct EdgeStmt<'a> {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 718 |     attr_list: Option<AttrList<'a>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dot_parse` (lib test) due to 6 previous errors; 16 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "53c639e18da82d814612bbb460dae492cc0b53acbbb634833fb49c8f5b0db151", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53c639e18da82d814612bbb460dae492cc0b53acbbb634833fb49c8f5b0db151", kill_on_drop: false }`
[INFO] [stdout] 53c639e18da82d814612bbb460dae492cc0b53acbbb634833fb49c8f5b0db151
